package com.lyf.scm.common.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * excel导出参数DTO
 *
 * @author wangchlei
 * @date 2020/08/15
 */
@Data
@ApiModel("导出对象")
public class ExcelExportDTO {
    @ApiModelProperty("单位类型")
    private Long unitType;
    @ApiModelProperty("全渠道")
    private String allChannelCode;
    /**
     * 分页信息
     */
    @ApiModelProperty(value = "当前页码")
    private Integer pageNum;

    @ApiModelProperty(value = "每页记录数")
    private Integer pageSize;
    /**
     * 分页中的下标集合
     */
    @ApiModelProperty(value = "复选框下标集合")
    private List<Integer> rowIndex;

    @ApiModelProperty(value = "id集合")
    private List<List<Long>> idList;
    /**
     * 日期
     */
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message = "开始时间不能为空")
    private Date startTime;

    /**
     * 日期
     */
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endTime;
    /**
     * 高级搜索条件
     */
    @ApiModelProperty(value = "渠道编码集合")
    private List<String> channelCodeList;

    @ApiModelProperty(value = "区域编码集合")
    private List<SalesPlanSelectDTO> areaCodeList;

    @ApiModelProperty(value = "品类编码集合")
    private List<SalesPlanSelectDTO> categoryCodeList;

    @ApiModelProperty(value = "销售组织编码集合")
    private List<SalesPlanSelectDTO> saleOrgCodeList;

    @ApiModelProperty(value = "分层集合")
    private List<String> layeredCodeList;

    @ApiModelProperty(value = "计划类型集合")
    private List<String> typeList;

    @ApiModelProperty("参数对象")
    private List<BaseSearchDTO> baseSearchS;

    @ApiModelProperty("父渠道code集合-需求计划导出用")
    private List<String> fatherChannelCodeList;

    @ApiModelProperty("仓库code集合")
    private List<String> warehouseCodeList;

    @ApiModelProperty("是否编辑模式---需求计划")
    private Boolean edit;

    private Long UserId;
}
